﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using L = Science.Mathematics.LinearAlgebra;

namespace Strang3Ed.Chapter02.Section5
{
    public class Example05
    {
        public Example05()
        {
        }
        private string result;
        public string Result
        {
            get { return result; }
        }
        public void Compute()
        {
            double[,] x = {{1.0,0.0,0.0},                           
                           {3.0,1.0,0.0},
                           {4.0,5.0,1.0}};

            L.Matrix A = new L.Matrix(x);

            L.FactorizationEAeqR obj = new L.FactorizationEAeqR(A);
            obj.Compute();

            L.Matrix R = obj.ReducedRowEchelonForm;

            result += R.ToString();

            L.Matrix E = obj.Elimination;

            result += E.ToString();

            L.Matrix P = E * A;

            result += P.ToString();
        }
    }
}
/*
1     0     0     
4.44089209850063E-16     1     0     
-1.77635683940025E-15     -1.77635683940025E-15     1     

1     0     0     
-3     1     0     
11     -5     1     

1     0     0     
4.44089209850063E-16     1     0     
-1.77635683940025E-15     -1.77635683940025E-15     1     
*/